home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
tex
/
texsrc.arc
/
TEX8.C
< prev
next >
Wrap
C/C++ Source or Header
|
1988-09-14
|
56KB
|
2,235 lines
overlay "tex8"
#define EXTERN extern
#include "texd.h"
mathlimitswi () { /* 10 */ r_mathlimitswi
if ( curlist .headfield != curlist .tailfield )
if ( mem [(long) curlist .tailfield ] .hh.b0 == 17 )
{
mem [(long) curlist .tailfield ] .hh.b1 = curchr ;
return ;
}
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 978 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 979 ;
}
error () ;
}
zscandelimite ( p , r )
halfword p ;
boolean r ;
{r_scandelimite
if ( r )
scantwentyse () ;
else {
do { getxtoken () ;
} while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
switch ( curcmd )
{case 11 :
case 12 :
curval = eqtb [ 5573 + curchr ] .cint ;
break ;
case 15 :
scantwentyse () ;
break ;
default :
curval = - 1 ;
break ;
}
}
if ( curval < 0 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 980 ) ;
}
{
helpptr = 6 ;
helpline [ 5 ] = 981 ;
helpline [ 4 ] = 982 ;
helpline [ 3 ] = 983 ;
helpline [ 2 ] = 984 ;
helpline [ 1 ] = 985 ;
helpline [ 0 ] = 986 ;
}
backerror () ;
curval = 0 ;
}
mem [(long) p ] .qqqq .b0 = ( curval / 1048576 ) % 16 ;
mem [(long) p ] .qqqq .b1 = ( curval / 4096 ) % 256 ;
mem [(long) p ] .qqqq .b2 = ( curval / 256 ) % 16 ;
mem [(long) p ] .qqqq .b3 = curval % 256 ;
}
mathradical () { r_mathradical
{
mem [(long) curlist .tailfield ] .hh .v.RH = getnode ( 5 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
mem [(long) curlist .tailfield ] .hh.b0 = 24 ;
mem [(long) curlist .tailfield ] .hh.b1 = 0 ;
mem [(long) curlist .tailfield + 1 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 3 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 2 ] .hh = emptyfield ;
scandelimite ( curlist .tailfield + 4 , true ) ;
scanmath ( curlist .tailfield + 1 ) ;
}
mathac () { r_mathac
if ( curcmd == 45 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 987 ) ;
}
printesc ( 382 ) ;
print ( 988 ) ;
{
helpptr = 2 ;
helpline [ 1 ] = 989 ;
helpline [ 0 ] = 990 ;
}
error () ;
}
{
mem [(long) curlist .tailfield ] .hh .v.RH = getnode ( 5 ) ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
mem [(long) curlist .tailfield ] .hh.b0 = 28 ;
mem [(long) curlist .tailfield ] .hh.b1 = 0 ;
mem [(long) curlist .tailfield + 1 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 3 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 2 ] .hh = emptyfield ;
mem [(long) curlist .tailfield + 4 ] .hh .v.RH = 1 ;
scanfifteenb () ;
mem [(long) curlist .tailfield + 4 ] .hh.b1 = curval % 256 ;
if ( ( curval >= 28672 ) && ( ( eqtb [ 5311 ] .cint >= 0 ) && ( eqtb [ 5311
] .cint < 16 ) ) )
mem [(long) curlist .tailfield + 4 ] .hh.b0 = eqtb [ 5311 ] .cint ;
else mem [(long) curlist .tailfield + 4 ] .hh.b0 = ( curval / 256 ) % 16 ;
scanmath ( curlist .tailfield + 1 ) ;
}
appendchoice () { r_appendchoice
{
mem [(long) curlist .tailfield ] .hh .v.RH = newchoice () ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
incr ( saveptr ) ;
savestack [ saveptr - 1 ] .cint = 0 ;
scanleftbrac () ;
pushmath ( 13 ) ;
}
halfword zfinmlist ( p )
halfword p ;
{register halfword Result; r_finmlist
halfword q ;
if ( curlist .auxfield != 0 )
{
mem [(long) curlist .auxfield + 3 ] .hh .v.RH = 3 ;
mem [(long) curlist .auxfield + 3 ] .hh .v.LH = mem [(long) curlist .headfield ] .hh
.v.RH ;
if ( p == 0 )
q = curlist .auxfield ;
else {
q = mem [(long) curlist .auxfield + 2 ] .hh .v.LH ;
if ( mem [(long) q ] .hh.b0 != 30 )
confusion ( 730 ) ;
mem [(long) curlist .auxfield + 2 ] .hh .v.LH = mem [(long) q ] .hh .v.RH ;
mem [(long) q ] .hh .v.RH = curlist .auxfield ;
mem [(long) curlist .auxfield ] .hh .v.RH = p ;
}
}
else {
mem [(long) curlist .tailfield ] .hh .v.RH = p ;
q = mem [(long) curlist .headfield ] .hh .v.RH ;
}
popnest () ;
Result = q ;
return(Result) ;
}
buildchoices () { /* 10 */ r_buildchoices
halfword p ;
unsave () ;
p = finmlist ( 0 ) ;
switch ( savestack [ saveptr - 1 ] .cint )
{case 0 :
mem [(long) curlist .tailfield + 1 ] .hh .v.LH = p ;
break ;
case 1 :
mem [(long) curlist .tailfield + 1 ] .hh .v.RH = p ;
break ;
case 2 :
mem [(long) curlist .tailfield + 2 ] .hh .v.LH = p ;
break ;
case 3 :
{
mem [(long) curlist .tailfield + 2 ] .hh .v.RH = p ;
decr ( saveptr ) ;
return ;
}
break ;
}
incr ( savestack [ saveptr - 1 ] .cint ) ;
scanleftbrac () ;
pushmath ( 13 ) ;
}
subsup () { r_subsup
smallnumber t ;
halfword p ;
t = 0 ;
p = 0 ;
if ( curlist .tailfield != curlist .headfield )
if ( ( mem [(long) curlist .tailfield ] .hh.b0 >= 16 ) && ( mem [(long) curlist
.tailfield ] .hh.b0 < 30 ) )
{
p = curlist .tailfield + 2 + curcmd - 7 ;
t = mem [(long) p ] .hh .v.RH ;
}
if ( ( p == 0 ) || ( t != 0 ) )
{
{
mem [(long) curlist .tailfield ] .hh .v.RH = newnoad () ;
curlist .tailfield = mem [(long) curlist .tailfield ] .hh .v.RH ;
}
p = curlist .tailfield + 2 + curcmd - 7 ;
if ( t != 0 )
{
if ( curcmd == 7 )
{
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 991 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 992 ;
}
}
else {
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 993 ) ;
}
{
helpptr = 1 ;
helpline [ 0 ] = 994 ;
}
}
error () ;
}
}
scanmath ( p ) ;
}
mathfraction () { r_mathfraction
smallnumber c ;
c = curchr ;
if ( curlist .auxfield != 0 )
{
if ( c >= 3 )
{
scandelimite ( memtop - 12 , false ) ;
scandelimite ( memtop - 12 , false ) ;
}
if ( c % 3 == 0 )
scandimen ( false , false , false ) ;
{
if ( interaction == 3 )
wakeuptermin () ;
printnl ( 133 ) ;
print ( 1001 ) ;
}
{
helpptr = 3 ;
helpline [ 2 ] = 1002 ;
helpline [ 1 ] = 1003 ;
helpline [ 0 ] = 1004 ;
}
error () ;
}
else {
curlist .auxfield = getnode ( 6 ) ;
mem [(long) curlist .auxfield ] .hh.b0 = 25 ;
mem [(long) curlist .auxfield ] .hh.b1 = 0 ;
mem [(long) curlist .auxfield + 2 ] .hh .v.RH = 3 ;
mem [(long) curlist .auxfield + 2 ] .hh .v.LH = mem [(long) curlist .headfield ] .hh
.v.RH ;
mem [(long) curlist .auxfield + 3 ] .hh = emptyfield ;
mem [(long) curlist .auxfield + 4 ] .qqqq = nulldelimite ;
mem [(long) curlist .auxfield + 5 ] .qqqq = nulldelimite ;
mem [(long) curlist .headfield ] .hh .v.RH = 0 ;
curlist .tailfield = curlist .headfield ;
if ( c >= 3 )
{
scandelimite ( curlist .auxfield + 4 , false ) ;
scandelimite ( curlist .auxfield + 5 , false ) ;
}
switch ( c % 3 )
{case 0 :
{
scandimen ( false , false , false ) ;
mem [(long) curlist .auxfield + 1 ] .cint = curval ;
}
break ;
case 1 :
mem [(long) curlist .auxfield + 1 ] .cint = 1073741824 ;
break ;
case 2 :
mem [(long) curlist .auxfield + 1 ] .cint = 0 ;
break ;
}
}
}
mathleftrigh () { r_mathleftrigh
smallnumber t ;
halfword p ;
t = curchr ;
if ( ( t == 31 ) && ( curgroup != 16 ) )
{
if ( curgroup == 15 )
{
scande